/*
 * Copyright (C) RT, 2017 by kiterunner_t
 * TO THE HAPPY FEW
 */

package com.zgys.mes.util.error;

import com.zgys.mes.util.Log;
import lombok.AllArgsConstructor;
import lombok.Getter;

@AllArgsConstructor
@Getter
public enum RtErrorEnum {
    UNKNOW(-1, "UNKNOW"),

    SUCCESS(200,"OK"),
    /*------------------------------------------------------------------------------------*/
    //请求成功，但结果有多种选择。比如说，我们下载一部片，服务器有 avi、mp4 等格式，这时候可以返回 300，并在 body 里告知有哪些格式，然后用户可以根据这些格式再次请求。
    SUCCESS_MULTIPLE_CHOICE(300, "Multiple Choice"),

    //请求成功，但是资源被临时转移了
    SUCCESS_RESOURCE_TRANSFER(302, "Found"),

    /*------------------------------------------------------------------------------------*/
    //请求出现错误，比如请求头不对等，所有不想明确区分的客户端请求出错都可以返回 400。
    ERROR_BAD_REQUEST(400, "Bad Request"),

    //没有提供认证信息。比如说，请求的时候没有带上 Token 等
    ERROR_UNAUTHORIZED(401, "Unauthorized"),

    //403 请求的资源不允许访问。比如说，你使用普通用户的 Token 去请求管理员才能访问的资源。
    ERROR_FORBIDDEN(403, "Forbidden"),

    //404 请求的内容不存在。
    ERROR_NOT_FOUND(404, "Not Found"),

    //500服务器错误。没法明确定义的服务器错误都可以返回这个。
    ERROR_INTERNAL_SERVER(500, "Internal Server Error"),
     /*------------------------------------------------------------------------------------*/


    ERROR_DB(1001, "Db Error");



    private int code;
    private String message;

    public static RtErrorEnum getEnum(int index) {
        for (RtErrorEnum c : RtErrorEnum.values()) {
            if (c.getCode() == index) {
                return c;
            }
        }
        Log.error("this QualityTypeEnum({}) can not convert to QualityTypeEnum ", index);
        return RtErrorEnum.UNKNOW;
    }

}

